package cn.bandeqing.wechatminiapp.req;

import cn.bandeqing.frame.validation.Phone;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;

@Data
@Schema(description = "下单预约")
public class OrderAppointmentReq implements Serializable {

    /**
     * 订单ID
     */
//    private Long orderId;

    @Schema(description = "客户名称")
    @NotBlank
    private String customerName;

    @Schema(description = "客户电话")
    @NotBlank
    @Phone
    private String customerPhone;

    //    private String serviceTime;
    @Schema(description = "服务时间 yyyy-MM-dd HH:mm:ss")
    @NotBlank
    private String serviceTimeStr;

    @NotBlank
    @Schema(description = "起点地址")
    private String startAddress;

    @NotNull
    private Double startAddressLng;

    @NotNull
    private Double startAddressLat;

//    private Double distance;

    //    @NotBlank
    @Schema(description = "新家地址")
    private String newAddress;

    //    @NotNull
    private Double newAddressLng;

    //    @NotNull
    private Double newAddressLat;

//    private Integer orderStatus;

//    private Boolean dispatchStatus;

//    private Timestamp handInTime;
//    private Long handInUserId;
//    private String handInUserName;

//    private Timestamp writeOffTime;
//    private Long writeOffUserId;
//    private String writeOffUserName;

    @NotNull
    @Schema(description = "门店ID")
    private Long storeId;

    @NotBlank
    @Schema(description = "门店名称")
    private String storeName;

    /**
     * 套餐总价
     */
//    private Double productTotalPrice;

    /**
     * 优惠金额
     */
//    private Double discountsPrice;

    /**
     * 其他费用
     */
//    private Double otherPrice;

    /**
     * 总价
     */
//    private Double totalPrice;

    /**
     * 应付定金
     */
//    private Double shouldDeposit;

    // 实付定金
//    private Double payDeposit;

    // 实付尾款
//    private Double payFinalPayment;

    // 套餐信息
    @NotNull
    @Schema(description = "产品ID")
    private Long productId;
    @NotBlank
    @Schema(description = "产品名称")
    private String productName;

    @NotNull
    @Schema(description = "产品规格ID")
    private Long productSpecificationId;
    @NotBlank
    @Schema(description = "产品规格")
    private String productSpecification;

    @NotNull
    @Schema(description = "产品规格价格")
    private Double productPrice;

    // 城市编码6位国家行政
    @NotBlank
    @Schema(description = "城市code")
    private String cityCode;
    @NotBlank
    @Schema(description = "城市名称")
    private String cityName;

    @NotNull
    @Schema(description = "起点楼层")
    private Integer startFloor;

    @Schema(description = "起点是否有电梯")
    private Boolean startElevator;
//    private Double startFloorPrice;

    //    @NotNull
    @Schema(description = "新家楼层")
    private Integer newFloor;

    @Schema(description = "新家否有电梯")
    private Boolean newElevator;
//    private Double newFloorPrice;

//    private Double kmPrice;

    @Schema(description = "客户备注")
    private String customerRemark;
//    private String serviceRemark;
//    private String orderRemark;

}
